import request from '@/utils/request';

// 角色状态枚举
export const RoleStatusEnum = {
  DISABLED: 0, // 停用
  ENABLED: 1, // 正常
} as const;

// 数据范围枚举
export const DataScopeEnum = {
  ALL: 1, // 全部数据权限
  CUSTOM: 2, // 自定数据权限
  DEPT: 3, // 本部门数据权限
  DEPT_AND_CHILD: 4, // 本部门及以下数据权限
} as const;

// 角色查询参数接口
export interface RoleQueryParams {
  current?: number;
  size?: number;
  roleName?: string;
  roleKey?: string;
  status?: number;
}

// 角色实体接口
export interface Role {
  id: number;
  roleName: string;
  roleKey: string;
  roleSort: number;
  dataScope: number;
  status: number;
  statusName?: string;
  remark?: string;
  createTime?: string;
  updateTime?: string;
  createBy?: string;
  updateBy?: string;
  menuIds?: number[];
}

// 获取角色列表
export function getRoleList(params: RoleQueryParams) {
  return request.get('/api/system/role/page', params);
}

// 获取角色详情
export function getRoleDetail(id: number) {
  return request.get(`/api/system/role/${id}`);
}

// 创建角色
export function createRole(data: Role) {
  return request.post('/api/system/role', data);
}

// 更新角色
export function updateRole(data: Role) {
  return request.put('/api/system/role', data);
}

// 删除角色
export function deleteRole(id: number) {
  return request.delete(`/api/system/role/${id}`);
}

// 更新角色状态
export function updateRoleStatus(id: number, status: number) {
  return request.put(`/api/system/role/status`, { id, status });
}
